package com.ruoyi.caiwu.mapper;

import java.util.List;
import com.ruoyi.caiwu.domain.AccountingSubjects;
import com.ruoyi.caiwu.domain.vo.AccountingSubjectsVo;
import io.lettuce.core.dynamic.annotation.Param;

/**
 * 科目Mapper接口
 *
 * @author ruoyi
 * @date 2025-02-25
 */
public interface AccountingSubjectsMapper
{
    /**
     * 查询科目
     *
     * @param subjectId 科目主键
     * @return 科目
     */
    public AccountingSubjects selectAccountingSubjectsBySubjectId(Long subjectId);

    /**
     * 查询科目列表
     *
     * @param accountingSubjects 科目
     * @return 科目集合
     */
    public List<AccountingSubjects> selectAccountingSubjectsList(AccountingSubjects accountingSubjects);

    /**
     * 新增科目
     *
     * @param accountingSubjects 科目
     * @return 结果
     */
    public int insertAccountingSubjects(AccountingSubjects accountingSubjects);

    /**
     * 修改科目
     *
     * @param accountingSubjects 科目
     * @return 结果
     */
    public int updateAccountingSubjects(AccountingSubjects accountingSubjects);

    /**
     * 删除科目
     *
     * @param subjectId 科目主键
     * @return 结果
     */
    public int deleteAccountingSubjectsBySubjectId(Long subjectId);

    /**
     * 批量删除科目
     *
     * @param subjectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAccountingSubjectsBySubjectIds(Long[] subjectIds);

    AccountingSubjects findById(@Param("subjectId") Long subjectId);


    AccountingSubjectsVo getNameById(Long subjectId);

    Integer selectAccountingSubjectsId(@org.apache.ibatis.annotations.Param("year") int year, @org.apache.ibatis.annotations.Param("month") int month, @org.apache.ibatis.annotations.Param("subjectCode") String subjectCode);


}
